home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 2823.ZIP / MIRRORS.BAS < prev    next >
BASIC Source File  |  1991-02-11  |  2KB  |  64 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |          GRAFWIZ  Copyright (c) 1990  Thomas G. Hanlin III           |
  4. '   |                                                                      |
  5. '   |               The Graphics Wizard's Library for BASIC                |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    REM $INCLUDE: 'grafwiz.bi'
  10.  
  11.    CONST MaxX = 639
  12.    CONST MaxY = 479
  13.    CONST MaxColor = 15
  14.  
  15.    DEFINT A-Z
  16.  
  17.    RANDOMIZE TIMER
  18.  
  19.    GetDisplay Adapter, Mono
  20.  
  21.    IF Adapter < 6 THEN
  22.       PRINT "Sorry, but you must have a VGA display active to run this demo."
  23.       END
  24.    END IF
  25.  
  26.    X = INT(RND * MaxX \ 2)
  27.    Y = INT(RND * MaxY \ 2)
  28.    C = INT(RND * (MaxColor - 1) + 1)
  29.  
  30.    G12Mode 1
  31.    G12Color C, 0
  32.  
  33.    DO
  34.       ky$ = INKEY$
  35.       IF LEN(ky$) THEN
  36.          SELECT CASE UCASE$(ky$)
  37.             CASE "C": G12Cls
  38.             CASE "P": WHILE INKEY$ = "": WEND
  39.             CASE ELSE
  40.          END SELECT
  41.       ELSE
  42.          G12Plot X, Y
  43.          G12Plot MaxX - X, Y
  44.          G12Plot MaxX - X, MaxY - Y
  45.          G12Plot X, MaxY - Y
  46.          SELECT CASE INT(RND * 3)
  47.             CASE 0: X = X - 1: IF X < 0 THEN X = MaxX \ 2
  48.             CASE 1: X = X + 1: IF X > MaxX \ 2 THEN X = 0
  49.             CASE ELSE
  50.          END SELECT
  51.          SELECT CASE INT(RND * 3)
  52.             CASE 0: Y = Y - 1: IF Y < 0 THEN Y = MaxY \ 2
  53.             CASE 1: Y = Y + 1: IF Y > MaxY \ 2 THEN Y = 0
  54.             CASE ELSE
  55.          END SELECT
  56.          IF INT(RND * 20) = 1 THEN
  57.             C = INT(RND * (MaxColor - 1) + 1)
  58.             G12Color C, 0
  59.          END IF
  60.       END IF
  61.    LOOP UNTIL ky$ = CHR$(27)
  62.  
  63.    G12Mode 0
  64.